package com.strange.mdl.module.mdl.controller.admin.videoinfo.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;

@Schema(description = "管理后台 - 视频信息 Response VO")
@Data
@ExcelIgnoreUnannotated
public class MdlVideoInfoRespVO {

    @Schema(description = "视频ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "29918")
    @ExcelProperty("视频ID")
    private Long id;

    @Schema(description = "视频标题", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("视频标题")
    private String title;

    @Schema(description = "视频描述", example = "随便")
    @ExcelProperty("视频描述")
    private String description;

    @Schema(description = "封面图片URL（OSS地址）", example = "https://www.iocoder.cn")
    @ExcelProperty("封面图片URL（OSS地址）")
    private String coverUrl;

    @Schema(description = "视频文件URL（OSS地址）", requiredMode = Schema.RequiredMode.REQUIRED, example = "https://www.iocoder.cn")
    @ExcelProperty("视频文件URL（OSS地址）")
    private String videoUrl;

    @Schema(description = "视频时长（秒）")
    @ExcelProperty("视频时长（秒）")
    private Integer duration;

    @Schema(description = "文件大小（字节）")
    @ExcelProperty("文件大小（字节）")
    private Long fileSize;

    @Schema(description = "视频状态：0-下架，1-发布", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
    @ExcelProperty("视频状态：0-下架，1-发布")
    private Integer status;

    @Schema(description = "发布时间")
    @ExcelProperty("发布时间")
    private LocalDateTime publishTime;

    @Schema(description = "播放次数", example = "4903")
    @ExcelProperty("播放次数")
    private Long playCount;

    @Schema(description = "点赞数", example = "2920")
    @ExcelProperty("点赞数")
    private Long likeCount;

    @Schema(description = "收藏数", example = "17155")
    @ExcelProperty("收藏数")
    private Long collectCount;

    @Schema(description = "分享数", example = "18821")
    @ExcelProperty("分享数")
    private Long shareCount;

    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("创建时间")
    private LocalDateTime createTime;

}